[新機能]RDS for Auroraで暗号化がサポートされました
最近は趣味であるシガーをあまり吸っていない大栗です。 昨日の記事である『AWS再入門 Amazon RDS編』の中で、Auroraでは「暗号を有効化」は項目はあるが指定できないと記述していましたが、先ほどのリリースでAuroraでも暗号化がサポートされたらしいので確認してみます。
2015/12/09 13:50「暗号化の種類」と「暗号化するときの鍵管理」で記載していた表の内容に誤りがあったため修正致しました。
RDS暗号化の概要
まずはRDSの暗号化について、内容を確認してみましょう。
暗号化の対象
RDSでの暗号化によって、以下のデータがAES-256によって暗号化されます。暗号化/復号化は透過的に行われるため、アプリケーションでの修正は必要ありません。
- DB インスタンス
- 自動バックアップ
- リードレプリカ
- スナップショット
- ログ
暗号化の種類
RDSでは暗号化は「暗号化されたインスタンス」と「Transparent Data Encryption(TDE)」の2種類があります。今回Auroraでは「暗号化されたインスタンス」がサポートされました。
DBエンジン|暗号化された
インスタンス | TDE |
---|---|
MySQL | ○|× |
Oracle | ○|○(Enterprise Edition) |
SQL Server | ○|○(Enterprise Edition) |
PostgreSQL | ○|× |
Aurora | ○ ← New !|× |
MariaDB | ○|× |
暗号化するときの鍵管理
暗号化の鍵管理のについては、Key Management Service(KMS)を使う方法とCloudHSMを使う方法があります。Auroraの場合はKMSを使う方法がサポートされました。
DBエンジン | KMS | CloudHSM |
---|---|---|
MySQL | ○ | × |
Oracle | ○ | ○(TDE) |
SQL Server | ○ | × |
PostgreSQL | ○ | × |
Aurora | ○ ← New ! | × |
MariaDB | ○ | × |
KMSの詳細については、『AWS再入門 – Amazon KMS編』を参照してください。
Auroraを暗号化してみる
実際にAuroraを暗号化してみましょう。
AuroraのDBインスタンスを起動します。 起動の詳細手順は、AWS再入門 Amazon RDS編 - インスタンスの起動 を参照して下さい。
今までは「暗号を有効化」はグレーアウトされて[いいえ]しか選択できなかったのですが、[はい]を選択すると暗号化のマスターキーを入力できるようになります。 「マスターキー」には自分のアカウントのKMSのキーを選択するだけでなく、別のアカウントのキーを使用することができます。その場合は、キーのARNを入力します。
マネージメントコンソールで確認すると確かに暗号化が設定されています。
Auroraへログインしてみます。透過的な暗号化であるため特別な手順は何もありません。
$ mysql -u awsuser -pmypassword -h mycluster.cluster-abcdefghijkl.ap-northeast-1.rds.amazonaws.com mydb Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.6.10 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
注意
RDSの暗号化されたインスタンスには、以下の制限事項があります。
- RDS DB インスタンスの暗号化は、DB インスタンスの作成時にのみ有効にすることができます。作成後に暗号化を有効にすることはできません。
- 暗号化されていない既存の DB インスタンスを変更して暗号化を有効にすることはできません。
- 暗号化された DB インスタンスを変更して暗号化を無効にすることはできません。
- 暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化された DB インスタンスのリードレプリカを暗号化しないことは設定できません。
- 暗号化されたリードレプリカは、ソース DB インスタンスと同じキーで暗号化する必要があります。
- 暗号化されていないバックアップやスナップショットを、暗号化された DB インスタンスに復元することはできません。
- KMS の暗号化キーは、暗号化キーが作成されたリージョンに固有であるため、暗号化されたスナップショットを別のリージョンにコピーしたり、暗号化された DB インスタンスをリージョンを越えてレプリケートすることはできません。
- KMS 暗号化キーは作成したリージョンに固有であるため、暗号化された DB インスタンスをリージョン間でレプリケートすることはできません。
さいごに
Auroraは「エンタープライズレベルのデータベースを10分の1の価格で実現」と謳っていますが、今回の暗号化サポートで本当にエンタープライズレベルになってきたのではないかと思います。東京リージョンでも使用できるようになり、多くの場合でMySQLと比較して高速ですので、更にAuroraを使用することが多くなると期待しています。